CARTOGRAPHIE SUR R

TP : Cartographie avec R et analyse des indicateurs socio-économiques du Burkina

I. Introduction

1. Définition et importance de la cartographie

La cartographie est une discipline qui consiste à représenter des données géographiques sous forme de cartes. Elle permet d’analyser et de visualiser les phénomènes spatiaux, facilitant ainsi la prise de décision dans divers domaines : urbanisme, santé publique, économie, etc.

2. R et son rôle en cartographie statistique

R est un outil puissant pour la manipulation et la visualisation des données géospatiales. Grâce à des packages comme sf, ggplot2 et tmap, il est possible de charger des fichiers géographiques (shapefiles), de les fusionner avec des données statistiques et de produire des cartes thématiques.

L’objectif de ce TP est de créer des cartes thématiques du Burkina en intégrant des indicateurs socio-économiques issus de la base EHCVM Individu 2021. Nous utiliserons des données sur la pauvreté, l’accès aux services de santé, l’accès aux services bancaires et le revenu moyen.

Pour ce faire nous allons utiliser les packages suivants:

  • sf (Simple Features) : qui permet de charger les fichiers shapefile (.shp) avec st_read(). et de manipuler les données géospatiales (régions, départements, communes) et permet l’affichage avec ggplot2 et tmap.
  • ggplot2 : affiche des cartes statiques en utilisant geom_sf() et personnalise les cartes avec aes(fill = …) pour colorier les zones administratives.
  • tmap : crée des cartes interactives (zoom, navigation). et utilise tm_shape() et tm_polygons() pour afficher les subdivisions

II. Méthodologie

1. Chargement des données géographiques et statistiques

Nous avons deux sources de données principales :

Les fichiers shapefile du Burkina, contenant les limites administratives (régions, départements et communes).

Le fichier EHCVM Individu 2021, qui contient des informations socio-économiques sur les ménages et les individus interrogés.

Importation des packages :

Dans cette section, nous importons tous les packages qui seront utilisés par la suite.

readr : Ce package est utilisé pour lire des fichiers de données, notamment des fichiers CSV et TXT, de manière rapide et efficace. Il facilite l’importation des données dans R pour leur analyse.

haven : Il permet d’importer et d’exporter des fichiers de Stata (.dta), SPSS (.sav) et SAS (.sas7bdat). Il est utilisé ici pour lire les données de l’EHCVM, qui sont au format .dta.

mapsf : Ce package est utilisé pour la cartographie thématique. Il permet de générer facilement des cartes statiques en attribuant des couleurs aux zones en fonction d’indicateurs.

sf : Ce package est essentiel pour la manipulation des données spatiales sous le format Simple Features. Il permet de charger des shapefiles (.shp), de faire des jointures spatiales et d’effectuer des analyses géographiques.

ggplot2 : Ce package est utilisé pour la visualisation de données avec une approche basée sur la Grammar of Graphics. Il est utilisé ici pour tracer des cartes statiques en combinant geom_sf() avec des données spatiales.

dplyr : C’est un package de manipulation de données qui simplifie des opérations comme le filtrage, l’agrégation et la transformation des données. Il est utilisé pour calculer des indicateurs régionaux avant la cartographie.

utils : Il contient des fonctions de base pour R, notamment pour importer des fichiers, gérer les connexions et manipuler les objets en mémoire. Il est souvent utilisé pour des opérations générales comme la lecture de données ou l’affichage d’informations.

leaflet : Ce package est utilisé pour créer des cartes interactives. Il permet de superposer des couches de données, d’ajouter des popups et d’intégrer des fonds de carte dynamiques comme OpenStreetMap ou Google Maps.

leaflet.extras : C’est une extension du package leaflet qui ajoute des fonctionnalités supplémentaires, comme des contrôles interactifs, des effets visuels et des options avancées de personnalisation pour améliorer l’affichage des cartes.

viridis : Il est utilisé pour générer des palettes de couleurs optimisées pour la cartographie. Il permet d’assurer un bon contraste et une lisibilité accrue, notamment pour les personnes ayant des déficiences visuelles.

ggspatial : Ce package ajoute des outils SIG à ggplot2, comme l’affichage de nord, échelles, grilles et fonds de carte. Il est utile pour améliorer la précision et l’esthétique des cartes générées avec ggplot2.

Chargement des bases - Burkina :

Dans cette section, nous nous intéressons à la représentation spatiale des données de l’ECHVM 2021 du Burkina. Nous chargeons la base de données, qui contient des informations socio-économiques au niveau des individus et des ménages. Cette base servira à calculer des indicateurs statistiques agrégés par région, département et commune afin d’alimenter les cartes thématiques.

fusion des 2 bases

# Merge the two datasets on the household ID (hhid)
data <- left_join(individus, base, by="hhid")

Cartes au niveau régional

Ici, nous allons générer des cartes thématiques des régions du Burkina en utilisant un shapefile contenant les contours administratifs des régions.

Nous commençons par charger le shapefile correspondant :

# chargement du shapfile du Burkina niveau régional
region <- st_read("../donnees/bfa_admbnda_adm1_igb_20200323.shp", quiet= TRUE)

Jointure entre la base du TP4 et le shapefile :

Nous calculons la moyenne de quelques variables pertinentes par région pour la représentation. Nous déterminerons l’âge moyen par région, l’âge moyen au premier mariage, le volume horaire de travail moyen ainsi que le salaire moyen par région.

base_moy <- data %>% 
  group_by(ADM1_FR) %>%
  summarise(age_moyen = mean(age, na.rm = TRUE), 
            volhor_moyen = mean(volhor, na.rm = TRUE),
            agemar_moyen = mean(agemar, na.rm = TRUE),
            salaire_moyen = mean(salaire, na.rm = TRUE)) %>% 
  dplyr::select(ADM1_FR,volhor_moyen,age_moyen,agemar_moyen,salaire_moyen)

Jointure entre la base contenant les variables agrégées par moyenne au niveau régional et le shapefile des régions.

Nous devons maintenant agréger les données EHCVM par région afin de calculer des indicateurs tels que l’âge moyen, le volume horaire moyen, l’âge moyen au premier mariage et le salaire moyen.

base_moy_reg <- left_join(region,base_moy, by = "ADM1_FR")

Cartographie des indicateurs régionaux

Nous allons maintenant représenter graphiquement les indicateurs par région à l’aide de cartes interactives avec Leaflet.

Age moyen par région

age_palette <- colorNumeric(palette = "Blues", domain = base_moy_reg$age_moyen)

# Création de la carte interactive avec le nom des régions dans la popup
leaflet(base_moy_reg) %>%
  addTiles() %>%  # Couche OpenStreetMap
  addPolygons(
    color = "black", weight = 2, opacity = 1, 
    fillColor = ~age_palette(age_moyen), fillOpacity = 0.7,
    popup = ~paste("<b>Région :</b>", ADM1_FR, "<br>",
                   "<b>Âge moyen :</b>", age_moyen) 
  ) %>%
  addLegend(
    "bottomright", pal = age_palette, values = base_moy_reg$age_moyen,
    title = "Âge moyen", opacity = 1
  ) %>%
  addResetMapButton() %>%  # Bouton de recentrage
  addFullscreenControl()   # Mode plein écran

Carte du volume horaire moyen emploi principal par région

Nous utilisons le même principe que pour la carte précédente mais en remplaçant la variable d’intérêt par volhor_moyen.

age_palette <- colorNumeric(palette = "Blues", domain = base_moy_reg$volhor_moyen)

# Création de la carte interactive avec le nom des régions dans la popup
leaflet(base_moy_reg) %>%
  addTiles() %>%  # Couche OpenStreetMap
  addPolygons(
    color = "black", weight = 2, opacity = 1, 
    fillColor = ~age_palette(volhor_moyen), fillOpacity = 0.7,
    popup = ~paste("<b>Région :</b>", ADM1_FR, "<br>",
                   "<b>Volume horaire/an moyen :</b>", volhor_moyen) 
  ) %>%
  addLegend(
    "bottomright", pal = age_palette, values = base_moy_reg$volhor_moyen,
    title = "Volume horaire moyen emploi principal par région", opacity = 1
  ) %>%
  addResetMapButton() %>%  # Bouton de recentrage
  addFullscreenControl()   # Mode plein écran

Cette carte met en évidence les régions où le temps de travail est plus élevé.

Age moyen au premier mariage par région

Cette carte interactive représente l’âge moyen au premier mariage dans les différentes régions du Burkina. L’objectif est de mettre en évidence les disparités régionales en matière d’âge d’union.

Coloration avec la palette “Reds” : Plus la couleur est foncée, plus l’âge moyen au premier mariage est élevé. Popup informative : En passant la souris sur une région, on peut voir son nom et l’âge moyen au premier mariage. Outils interactifs : La carte inclut des options de recentrage et un mode plein écran pour une exploration plus fluide.

age_palette <- colorNumeric(palette = "Reds", domain = base_moy_reg$agemar_moyen)

# Création de la carte interactive avec le nom des régions dans la popup
leaflet(base_moy_reg) %>%
  addTiles() %>%  # Couche OpenStreetMap
  addPolygons(
    color = "black", weight = 2, opacity = 1, 
    fillColor = ~age_palette(agemar_moyen), fillOpacity = 0.7,
    popup = ~paste("<b>Région :</b>", ADM1_FR, "<br>",
                   "<b>Age moyen premier mariage:</b>", agemar_moyen) 
  ) %>%
  addLegend(
    "bottomright", pal = age_palette, values = base_moy_reg$agemar_moyen,
    title = "Volume horaire moyen emploi principal par région", opacity = 1
  ) %>%
  addResetMapButton() %>%  # Bouton de recentrage
  addFullscreenControl()   # Mode plein écran

Interprétation : Cette visualisation permet d’analyser les tendances matrimoniales et d’identifier les régions où les mariages ont lieu plus tôt ou plus tard.

Salaire moyen emploi principal par région

Cette carte met en avant la distribution du salaire moyen des travailleurs par région au Burkina.

Utilisation d’une échelle de couleurs rouges : Les zones en rouge foncé correspondent aux régions où le salaire moyen est plus élevé. Affichage interactif des valeurs : En cliquant sur une région, l’utilisateur obtient des informations détaillées sur le salaire moyen.

age_palette <- colorNumeric(palette = "Reds", domain = base_moy_reg$salaire_moyen)

# Création de la carte interactive avec le nom des régions dans la popup
leaflet(base_moy_reg) %>%
  addTiles() %>%  # Couche OpenStreetMap
  addPolygons(
    color = "black", weight = 2, opacity = 1, 
    fillColor = ~age_palette(salaire_moyen), fillOpacity = 0.7,
    popup = ~paste("<b>Région :</b>", ADM1_FR, "<br>",
                   "<b>Age moyen premier mariage:</b>", salaire_moyen) 
  ) %>%
  addLegend(
    "bottomright", pal = age_palette, values = base_moy_reg$salaire_moyen,
    title = "Salaire moyen emploi principal par région", opacity = 1
  ) %>%
  addResetMapButton() %>%  # Bouton de recentrage
  addFullscreenControl()   # Mode plein écran

Cette carte permet de visualiser les disparités économiques entre les régions et peut servir d’outil d’aide à la décision pour les politiques publiques et les stratégies d’investissement.